package com.ehsy.service;

/**
 * @author YanZhen_Li
 * @version 1.0
 * @title BaseRequestService
 * @description @BaseRequest注解定义在接口类上，在@BaseRequest上定义的属性会被分配到该接口中每一个方法上，但方法上定义的请求属性会覆盖
 *              @BaseRequest上重复定义的内容。 因此可以认为@BaseRequest上定义的属性内容是所在接口中所有请求的默认属性。
 * @create 2024/6/18 10:57
 */

import com.dtflys.forest.annotation.BaseRequest;
import com.dtflys.forest.annotation.Get;
import com.dtflys.forest.annotation.Query;
import com.dtflys.forest.annotation.Var;
import com.ehsy.common.ResponseVo;
import com.ehsy.model.UserInfo;

/**
 * @BaseRequest 为配置接口层级请求信息的注解
 * 其属性会成为该接口下所有请求的默认属性
 * 但可以被方法上定义的属性所覆盖
 */
@BaseRequest(
        baseURL = "${url}",     // 默认域名
        headers = {
                "clientName:${clientname}"                // 默认请求头
        }
)
public interface BaseRequestService2 {
    // 方法的URL不必再写域名部分
    @Get("/test/request/json/body")
    ResponseVo<UserInfo> test01(@Query UserInfo user);

    /**
     * 使用局部连梁覆盖全局变量
     */
    @Get("/test/request/json/body")
    ResponseVo<UserInfo> test02(@Var("url") String url,@Query UserInfo user);
}
